package event

import (
	"fmt"
	"time"
	"yunj/pkg/yunj/core/event"
)

// 事件订阅
var Subscribes = map[string][]*event.Listener{
	// 测试事件
	"test": {
		&event.Listener{
			Id: "listener_1",
			Handler: func(p any) error {
				fmt.Printf("测试事件订阅方法1 start参数：%v \r\n", p)
				time.Sleep(4 * time.Second)
				fmt.Printf("测试事件订阅方法1 end参数：%v \r\n", p)
				return nil
			},
			IsAsync: false,
		},
		&event.Listener{
			Id: "listener_2",
			Handler: func(p any) error {
				fmt.Printf("测试事件订阅方法2 start参数：%v \r\n", p)
				time.Sleep(3 * time.Second)
				fmt.Printf("测试事件订阅方法2 end参数：%v \r\n", p)
				return nil
			},
			IsAsync: true,
		},
		&event.Listener{
			Id: "listener_3",
			Handler: func(p any) error {
				fmt.Printf("测试事件订阅方法3 start参数：%v \r\n", p)
				time.Sleep(2 * time.Second)
				fmt.Printf("测试事件订阅方法3 end参数：%v \r\n", p)
				return nil
			},
			IsAsync: false,
			Timeout: 1 * time.Second,
		},
	},
}
